ANYまたはIN限定条件は、指定された値のリストと式(または式のリスト)を比較します。ANY条件は、ValueListの1つ以上の値が、式(または式のリスト)と比較演算子に指定した関係にある場合にTRUEと評価されます。同様に、IN条件は、式(または式のリスト)が、指定されたリスト内の値のいずれかと一致する場合にTRUEと評価されます。
RowValueConstructor {CompOp {ANY| SOME} | IN} ValueList
RowValueConstructorの構文は、次のとおりです。
RowValueConstructorElement |
(RowValueConstuctorList) |
RowValueConstructorListの構文は、次のとおりです。
RowValueConstructorElement
[{, RowValueConstructorElement} ... ]
RowValueConstructorElementの構文は、次のとおりです。
Expression | NULL
CompOpの構文は、次のとおりです。
{= | <> | > | >= | < | <= }
ValueListの要素が複数ある構文は、次のとおりです。
({Constant | ? | :DynamicParameter} [,...] )
カッコで囲まれていないValueListの要素が1つの構文は、次のとおりです。
Constant | ? | :DynamicParameter
ValueListが空の構文は、次のとおりです。
( )
ValueListが式のリストである構文は、次のとおりです。
(({Constant | ? | :DynamicParameter} [,...]))
Expression | 取得する値を指定します。ValueListの値は、式と互換性がある必要があります。式の構文については、「式の指定」を参照してください。 |
= | 等しい |
<> | 異なる |
> | 大きい |
>= | 以上 |
< | 小さい |
<= | 以下 |
{ANY| SOME} | ValueListの1つ以上の値が、式(または式のリスト)と比較演算子に指定した関係にある場合にTRUEとなります。SOMEはANYのシノニムです。 |
ValueList |
式(または式のリスト)の値と比較する値のリストです。ValueListには、列参照または副問合せを含めることができません。ValueListは、左側のオペランドがリストの場合にネストできます。 ValueListの要素は次のとおりです。
|
項目100、200または300の発注が含まれている項目番号をすべて選択します。
SELECT DISTINCT OrderItems.ItemNumber
FROM OrderItems
WHERE OrderItems.Quantity = ANY (100, 200, 300)
重量が12、16、17の部品の番号を検索します。
SELECT Parts.PartNumber FROM Parts
WHERE Parts.Weight IN (12, 16, 17);
シリアル番号が'1123-P-01'、'1733-AD-01'、:SerialNumberまたは:SerialIndである部品の部品番号を検索します。:SerialNumberと:SerialIndは動的パラメータで、その値は実行時に指定されます。
SELECT PartNumber FROM Purchasing.Parts
WHERE SerialNumber
IN ('1123-P-01', '1733-AD-01',:SerialNumber, :SerialInd);
IN条件で空の選択リストを問い合せる例を示します。
SELECT * FROM t1 WHERE x1 IN ();
IN条件に式のリストを使用した例を示します。
SELECT * FROM t1 WHERE (x1,y1) IN ((1,2), (3,4));
次に、IN条件に式のリストを使用した例を示します。この問合せは、department_id = 240およびlocation_id = 1700である部門のdepartment_nameを返します。
注意: IN条件の右側の式は、二重カッコ(( ))で囲む必要があります。
Command> select department_name from departments where (department_id, location_id) in ((240,1700));
< Government Sales >
1 row found.